package de.wittekind.bundesjugendspiele.server.interfaces;

import java.io.IOException;
import java.rmi.Remote;
import java.util.GregorianCalendar;

public interface Schueler extends Remote {

	public enum Gender {
		NOT_KNOWN, MALE, FEMALE, NOT_SPECIFIED;

		@Override
		public String toString() {
			switch (this) {
			case MALE:
				return "m";
			case FEMALE:
				return "w";
			default:
				return "?";
			}
		}
	}

	// getters
	int getID() throws IOException;

	String getLastName() throws IOException;

	String getFirstName() throws IOException;

	GregorianCalendar getBirthday() throws IOException;

	int getPoints() throws IOException;

	@Deprecated
	int getTry() throws IOException;

	Try[] getTries() throws IOException;

	Try createNewTry() throws IOException;

	@Deprecated
	int getCurrentDiscipline() throws IOException;

	Gender getGender() throws IOException;

	int getNote() throws IOException;

	public String getForm() throws IOException;

	boolean hasEhrenurkunde() throws IOException;

	boolean hasSiegerurkunde() throws IOException;

	// setters
	@Deprecated
	void setTry(int nTry) throws IOException;

	@Deprecated
	void setTries(Try[] tries) throws IOException;

	void setFirstName(String nFirstName) throws IOException;

	void setBirthday(GregorianCalendar nDate) throws IOException;

	void setGender(Gender nGender) throws IOException;

	void setForm(String nClass) throws IOException;

	@Deprecated
	public void setDiscipline(int id, Discipline d) throws IOException;

	void setLastName(String string) throws IOException;

	void setActive(boolean b) throws IOException;

}